home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / cadence.arc / VOL1NO6.ARC / STAIRCAL.LSP < prev   
Encoding:
Text File  |  1980-01-01  |  5.1 KB  |  101 lines

  1. ;STAIRCAL.LSP
  2. ;V 1.0
  3. ;John Charles Vogt
  4. ;Kennedy Associates, Architects, Inc.
  5. ;St. Louis, MO  63105    314 367 8188
  6. (DEFUN RDEIGHT (X)       **** ROUND TO EIGHTH INCH ****
  7.     (IF (> (REM(* X 8)) 0.5)(SETQ X (+ X 0.125)))
  8.     (SETQ X (/ (FLOAT (FIX (* X 8))) 8))
  9.  
  10.  
  11. )
  12. (DEFUN C:STAIRCALC ()    **** STAIR RISER AND RUN CALCULATIONS*****
  13.    (SETVAR "CMDECHO" 0)
  14.    (PROMPT "CALCULATIONS...")(TERPRI)(TERPRI)
  15.    (SETQ HFT (FIX (/ H 12))) (SETQ HIN (REM H 12))
  16.    (PROMPT "The height picked was   ")(PRIN1 HFT)(PROMPT "-")(PRIN1 HIN)(TERPRI)
  17.      (IF (> H 144)(PROMPT "Note that a single run of over 12 ft is not permitted by most codes!"))
  18.      (TERPRI)
  19.    (SETQ TH (GETREAL "Thickness of upper floor to underside of finished ceiling-IN INCHES! <default 0>  "))
  20.      (IF (NULL TH)(SETQ TH 0))
  21.    (TERPRI)
  22.    (PROMPT "1.BOCA Assem & Inst  2.BOCA One and Two Fam  3.BOCA Others 4.NFiPA ")(TERPRI)
  23.    (SETQ CODE (GETINT "Number of code to use: <default 3>  "))
  24.      (IF (NULL CODE)(SETQ CODE 3))
  25.      (IF (= CODE 1)(PROGN (SETQ MAXR 7.5)(SETQ MINT 10)))
  26.      (IF (= CODE 2)(PROGN (SETQ MAXR 8.25)(SETQ MINT 9)))
  27.      (IF (= CODE 3)(PROGN (SETQ MAXR 8)(SETQ MINT 9)))
  28.      (IF (= CODE 4)(PROGN (SETQ MAXR 7)(SETQ MINT 11)))
  29.    (PROMPT "Code selected was no. ")(PRIN1 CODE)(PROMPT "  Max riser is ")
  30.    (PRIN1 MAXR)(PROMPT " and Min tread is ")(PRIN1 MINT)
  31.    (TERPRI)
  32.     (SETQ NO1 (1+ (FIX (/ H MAXR))))
  33.       (SETQ R1 (/ H NO1))
  34.       (SETQ T1 (- 25 (* 2 R1)))(SETQ T1 (RDEIGHT T1))
  35.         (IF (< T1 MINT)(SETQ T1 MINT))
  36.       (SETQ RUN1 (* (1- NO1)T1))
  37.         (SETQ RFT1 (FIX (/ RUN1 12)))(SETQ RIN1 (REM RUN1 12))
  38.       (SETQ OPNG1 (RDEIGHT (/(*(* NO1 T1)(+ 80 TH))H)))
  39.         (SETQ OFT1 (FIX (/ OPNG1 12)))(SETQ OIN1 (REM OPNG1 12))
  40.     (SETQ NO2 (1+ NO1))
  41.       (SETQ R2 (/ H NO2))(IF (< R2 6)(SETQ R2 6))
  42.       (SETQ T2 (- 25 (* 2 R2)))(SETQ T2 (RDEIGHT T2))
  43.         (IF (< T2 MINT)(SETQ T2 MINT))
  44.       (SETQ RUN2 (* (1- NO2)T2))
  45.         (SETQ RFT2 (FIX (/ RUN2 12)))(SETQ RIN2 (REM RUN2 12))
  46.       (SETQ OPNG2 (RDEIGHT (/(*(* NO2 T2)(+ 80 TH))H)))
  47.         (SETQ OFT2 (FIX (/ OPNG2 12)))(SETQ OIN2 (REM OPNG2 12))
  48.    (IF (= R2 6)(SETQ NO3 NO2)(SETQ NO3 (1+ NO2)))
  49.       (SETQ R3 (/ H NO3))(IF (< R3 6)(SETQ R3 6))
  50.       (SETQ T3 (- 25 (* 2 R3)))(SETQ T3 (RDEIGHT T3))
  51.         (IF(< T3 MINT)(SETQ T3 MINT))
  52.       (SETQ RUN3(* (1- NO3)T3))
  53.         (SETQ RFT3 (FIX (/ RUN3 12)))(SETQ RIN3 (REM RUN3 12))
  54.       (SETQ OPNG3 (RDEIGHT (/(*(* NO3 T3)(+ 80 TH))H)))
  55.         (SETQ OFT3 (FIX (/ OPNG3 12)))(SETQ OIN3 (REM OPNG3 12))
  56.  (TERPRI)
  57.  (PROMPT"Choice  no.   risers     treads      run            opening required")(TERPRI)
  58.   (PROMPT"1       ")(IF (< NO1 10)(PROMPT " "))(PRIN1 NO1)(PROMPT "    ")
  59.    (PRIN1(FLOAT R1))(PROMPT "   ")(IF (< T1 10)(PROMPT " "))(PRIN1(FLOAT T1))
  60.    (PROMPT "   ")(IF (< RFT1 10)(PROMPT " "))(PRIN1 RFT1)(PROMPT "-")(IF (< RIN1 10)(PROMPT " "))(PRIN1 (FLOAT RIN1))
  61.    (PROMPT "   ")(IF (< OFT1 10)(PROMPT " "))(PRIN1 OFT1)(PROMPT "-")(IF (< OIN1 10)(PROMPT " "))(PRIN1 (FLOAT OIN1))(TERPRI)
  62.   (PROMPT"2       ")(IF (< NO2 10)(PROMPT " "))(PRIN1 NO2)(PROMPT "    ")
  63.    (PRIN1(FLOAT R2))(PROMPT"   ")(IF (< T2 10)(PROMPT" "))(PRIN1(FLOAT T2))
  64.    (PROMPT "   ")(IF (< RFT2 10)(PROMPT " "))(PRIN1 RFT2)(PROMPT "-")(IF (< RIN2 10)(PROMPT " "))(PRIN1 (FLOAT RIN2))
  65.    (PROMPT "   ")(IF (< OFT2 10)(PROMPT " "))(PRIN1 OFT2)(PROMPT "-")(IF (< OIN2 10)(PROMPT " "))(PRIN1 (FLOAT OIN2))(TERPRI)
  66.   (PROMPT"3       ")(IF (< NO3 10)(PROMPT " "))(PRIN1 NO3)(PROMPT "    ")
  67.    (PRIN1(FLOAT R3))(PROMPT"   ")(IF (< T3 10)(PROMPT" "))(PRIN1(FLOAT T3))
  68.    (PROMPT "   ")(IF (< RFT3 10)(PROMPT " "))(PRIN1 RFT3)(PROMPT "-")(IF (< RIN3 10)(PROMPT " "))(PRIN1 (FLOAT RIN3))
  69.    (PROMPT "   ")(IF (< OFT3 10)(PROMPT " "))(PRIN1 OFT3)(PROMPT "-")(IF (< OIN3 10)(PROMPT " "))(PRIN1 (FLOAT OIN3))(TERPRI)
  70.    (TERPRI)(TERPRI)
  71.  (ANTHRT)
  72. )
  73. (DEFUN ANTHRT ()         **** ANOTHER TREAD WIDTH ****
  74.   (SETQ ANS (GETSTRING "Would you like the run-opening data for another tread width? <N>: "))
  75.     (IF (EQ ANS "y")(SETQ ANS "Y"))
  76.   (SETQ ANSW "Y")
  77.   (WHILE (EQ ANSW ANS)
  78.     (SETQ T (GETREAL "Tread width:  "))
  79.     (IF (< T MINT)(PROGN
  80.       (SETQ T MINT)
  81.       (PRIN1 (FLOAT T))
  82.       (PROMPT " is the minimum allowed by the code chosen!")
  83.       (TERPRI)     )
  84.     )
  85.     (SETQ NO (GETREAL "Number of risers:  "))
  86.     (IF (< NO NO1)(PROGN
  87.       (SETQ NO NO1)
  88.       (PRIN1 NO)
  89.       (PROMPT " is the min. number of risers required to get max. riser size!")
  90.       (TERPRI)     )
  91.     )
  92.     (SETQ RUN (* (1- NO) T)) (SETQ RUN (RDEIGHT RUN))
  93.     (SETQ RFT (FIX (/ RUN 12))) (SETQ RIN (REM RUN 12))
  94.     (SETQ OPNG (/ (* (* NO T) (+ 80 TH))H)) (SETQ OPNG (RDEIGHT OPNG))
  95.     (SETQ OFT (FIX (/ OPNG 12))) (SETQ OIN (REM OPNG 12))
  96.     (PROMPT"                         ") (IF (< T 10) (PROMPT" ")) (PRIN1 (FLOAT T)) (PROMPT"   ")
  97.     (IF (< RFT 10)(PROMPT" "))(PRIN1 RFT)(PROMPT"-")(IF (< RIN 10)(PROMPT" "))(PRIN1 (FLOAT RIN))(PROMPT"   ")
  98.     (IF (< OFT 10)(PROMPT" "))(PRIN1 OFT)(PROMPT"-")(IF (< OIN 10)(PROMPT" "))(PRIN1 (FLOAT OIN))
  99.     (TERPRI)(TERPRI)
  100.     (SETQ ANS(GETSTRING"Would you like the run-opening data for another tread width? <N>: ")) ) )
  101.